Systems, computing devices, and methods for setting data usage levels among computing devices based on predicted data usage

ABSTRACT

Systems, computing devices, and methods for setting data usage levels among computing devices based on predicted data usage are disclosed. According to an aspect, a method includes predicting data usage by a computing device. The computing device is associated with a data usage plan including the computing device and at least one other computing device. The method also includes setting a data usage level of the at least one other computing device based on the predicted data usage.

TECHNICAL FIELD

The present subject matter relates to computing device communications.More specifically, the present subject matter relates to systems,computing devices, and methods for setting data usage levels amongcomputing devices based on predicted data usage.

BACKGROUND

The Mobile computing devices, such as smartphones and tablet computers,have become ubiquitous and their use continues to increase. Along withthe increased popularity, there has been a similar increase in theamount of data handled by networks of service providers. Mobilecomputing device users typically pay based on how much data that iscommunicated via the networks.

Services providers offer various plans for users on an account. Forexample, a family may share a data usage plan in which they areallocated a particular amount of data per month as an aggregate valuefor all of the users on the account. Currently, it is possible to sethard limits on a user's device or on their account to manager going overthe total aggregate limit on the account. These hard limits aretypically conservative, causing users to throttle behavior or losefunction. Often, a fair amount of unused data allocation remains at theend of a use period.

For at least these reasons, there is a need for improved techniques forusers to manage their data usage plans so that their data allocation isused more efficiently.

SUMMARY

Disclosed herein are systems, computing devices, and methods for settingdata usage levels among computing devices based on predicted data usage.According to an aspect, a method includes predicting data usage by acomputing device. The computing device is associated with a data usageplan including the computing device and at least one other computingdevice. The method also includes setting a data usage level of the atleast one other computing device based on the predicted data usage.

BRIEF DESCRIPTION OF THE DRAWINGS

The illustrated embodiments of the disclosed subject matter will be bestunderstood by reference to the drawings, wherein like parts aredesignated by like numerals throughout. The following description isintended only by way of example, and simply illustrates certain selectedembodiments of devices, systems, and processes that are consistent withthe disclosed subject matter as claimed herein.

FIG. 1 is a block diagram of an example system including a mobilecomputing device 100 for setting data usage levels among computingdevices based on predicted data usage in accordance with embodiments ofthe present disclosure; and

FIG. 2 is a flowchart of a method for setting data usage levels amongcomputing devices based on predicted data usage in accordance withembodiments of the present disclosure.

DETAILED DESCRIPTION

The following detailed description is made with reference to thefigures. Exemplary embodiments are described to illustrate thedisclosure, not to limit its scope, which is defined by the claims.Those of ordinary skill in the art will recognize a number of equivalentvariations in the description that follows.

The functional units described in this specification have been labeledas computing devices. A computing device may be implemented inprogrammable hardware devices such as processors, digital signalprocessors, central processing units, field programmable gate arrays,programmable array logic, programmable logic devices, cloud processingsystems, or the like. The computing devices may also be implemented insoftware for execution by various types of processors. An identifieddevice may include executable code and may, for instance, comprise oneor more physical or logical blocks of computer instructions, which may,for instance, be organized as an object, procedure, function, or otherconstruct. Nevertheless, the executable of an identified device need notbe physically located together, but may comprise disparate instructionsstored in different locations which, when joined logically together,comprise the computing device and achieve the stated purpose of thecomputing device.

An executable code of a computing device may be a single instruction, ormany instructions, and may even be distributed over several differentcode segments, among different applications, and across several memorydevices. Similarly, operational data may be identified and illustratedherein within the computing device, and may be embodied in any suitableform and organized within any suitable type of data structure. Theoperational data may be collected as a single data set, or may bedistributed over different locations including over different storagedevices, and may exist, at least partially, as electronic signals on asystem or network.

The described features, structures, or characteristics may be combinedin any suitable manner in one or more embodiments. In the followingdescription, numerous specific details are provided, to provide athorough understanding of embodiments of the disclosed subject matter.One skilled in the relevant art will recognize, however, that thedisclosed subject matter can be practiced without one or more of thespecific details, or with other methods, components, materials, etc. Inother instances, well-known structures, materials, or operations are notshown or described in detail to avoid obscuring aspects of the disclosedsubject matter.

As used herein, the term “memory” is generally a storage device of acomputing device. Examples include, but are not limited to, ROM and RAM.

The device or system for performing one or more operations on a memoryof a computing device may be a software, hardware, firmware, orcombination of these. The device or the system is further intended toinclude or otherwise cover all software or computer programs capable ofperforming the various heretofore-disclosed determinations,calculations, or the like for the disclosed purposes. For example,exemplary embodiments are intended to cover all software or computerprograms capable of enabling processors to implement the disclosedprocesses. Exemplary embodiments are also intended to cover any and allcurrently known, related art or later developed non-transitory recordingor storage mediums (such as a CD-ROM, DVD-ROM, hard drive, RAM, ROM,floppy disc, magnetic tape cassette, etc.) that record or store suchsoftware or computer programs. Exemplary embodiments are furtherintended to cover such software, computer programs, systems and/orprocesses provided through any other currently known, related art, orlater developed medium (such as transitory mediums, carrier waves,etc.), usable for implementing the exemplary operations disclosed below.

In accordance with the exemplary embodiments, the disclosed computerprograms can be executed in many exemplary ways, such as an applicationthat is resident in the memory of a device or as a hosted applicationthat is being executed on a server and communicating with the deviceapplication or browser via a number of standard protocols, such asTCP/IP, HTTP, XML, SOAP, REST, JSON and other sufficient protocols. Thedisclosed computer programs can be written in exemplary programminglanguages that execute from memory on the device or from a hostedserver, such as BASIC, COBOL, C, C++, Java, Pascal, or scriptinglanguages such as JavaScript, Python, Ruby, PHP, Perl, or other suitableprogramming languages.

As referred to herein, the term “computing device” should be broadlyconstrued. It can include any type of computing device, for example, asmart phone, a cell phone, a pager, a personal digital assistant (PDA,e.g., with GPRS NIC), a mobile computer with a smartphone client, or thelike. A computing device can also include any type of conventionalcomputer, for example, a desktop computer or a laptop computer. Atypical mobile device is a wireless data access-enabled device (e.g., aniPHONE® smartphone, a BLACKBERRY® smart phone, a NEXUS ONE™ smart phone,an iPAD™ device, or the like) that is capable of sending and receivingdata in a wireless manner using communications protocols such as theInternet Protocol (IP), BLUETOOTH®, WI-FI®, and the wireless applicationprotocol (WAP). This allows users to access information via wirelessdevices, such as smart phones, mobile phones, pagers, two-way radios,communicators, and the like. Wireless data access is supported by manywireless networks, including, but not limited to, CDPD, CDMA, GSM, PDC,PHS, TDMA, FLEX, ReFLEX, iDEN, TETRA, DECT, DataTAC, Mobitex, EDGE andother 2G, 3G, 4G and LTE technologies, and it operates with manyhandheld device operating systems, such as PalmOS, EPOC, Windows CE,FLEXOS, OS/9, JavaOS, iOS and Android. Typically, these devices usegraphical displays and can access the Internet (or other communicationsnetwork) on so-called mini- or micro-browsers, which are web browserswith small file sizes that can accommodate the reduced memoryconstraints of wireless networks. In a representative embodiment, themobile device is a cellular telephone or smart phone that operates overGPRS (General Packet Radio Services), which is a data technology for GSMnetworks. In addition to a conventional voice communication, a givenmobile device can communicate with another such device via manydifferent types of message transfer techniques, including SMS (shortmessage service), enhanced SMS (EMS), multi-media message (MMS), emailWAP, paging, or other known or later-developed wireless data formats.Although many of the examples provided herein are implemented on amobile device, the examples may similarly be implemented on any suitablecomputing device.

As referred to herein, a “user interface” is generally a system by whichusers interact with a computing device. A user interface can include aninput for allowing users to manipulate a computing device, and caninclude an output for allowing the system to present information and/ordata, indicate the effects of the user's manipulation, etc. An exampleof a user interface on a computing device (e.g., a mobile device)includes a graphical user interface (GUI) that allows users to interactwith programs in more ways than typing. A GUI typically can offerdisplay objects, and visual indicators, as opposed to text-basedinterfaces, typed command labels or text navigation to representinformation and actions available to a user. For example, an interfacecan be a display window or display object, which is selectable by a userof a mobile device for interaction. The display object can be displayedon a display screen of a mobile device and can be selected by andinteracted with by a user using the interface. In an example, thedisplay of the mobile device can be a touch screen, which can displaythe display icon. The user can depress the area of the display screen atwhich the display icon is displayed for selecting the display icon. Inanother example, the user can use any other suitable interface of amobile device, such as a keypad, to select the display icon or displayobject. For example, the user can use a track ball or arrow keys formoving a cursor to highlight and select the display object. Operatingenvironments in which embodiments of the presently disclosed subjectmatter may be implemented are also well-known. In a representativeembodiment, a computing device, such as a mobile device, is connectable(for example, via WAP) to a transmission functionality that variesdepending on implementation. Thus, for example, where the operatingenvironment is a wide area wireless network (e.g., a 2.5G network, a 3Gnetwork, or a 4G network), the transmission functionality comprises oneor more components such as a mobile switching center (MSC) (an enhancedISDN switch that is responsible for call handling of mobilesubscribers), a visitor location register (VLR) (an intelligent databasethat stores on a temporary basis data required to handle calls set up orreceived by mobile devices registered with the VLR), a home locationregister (HLR) (an intelligent database responsible for management ofeach subscriber's records), one or more base stations (which provideradio coverage with a cell), a base station controller (BSC) (a switchthat acts as a local concentrator of traffic and provides localswitching to effect handover between base stations), and a packetcontrol unit (PCU) (a device that separates data traffic coming from amobile device). The HLR also controls certain services associated withincoming calls. Of course, the presently disclosed subject matter may beimplemented in other and next-generation mobile networks and devices aswell. The mobile device is the physical equipment used by the end user,typically a subscriber to the wireless network. Typically, a mobiledevice is a 2.5G-compliant device or 3G-compliant device (or theproposed 4G-compliant device) that includes a subscriber identity module(SIM), which is a smart card that carries subscriber-specificinformation, mobile equipment (e.g., radio and associated signalprocessing devices), a user interface (or a man-machine interface (MMI),and one or more interfaces to external devices (e.g., computers, PDAs,and the like). The mobile device may also include a memory or datastore.

The present disclosure is now described in more detail. For example,FIG. 1 illustrates a block diagram of an example system including amobile computing device 100 for setting data usage levels amongcomputing devices based on predicted data usage in accordance withembodiments of the present disclosure. In this example, the mobilecomputing device 100 is associated with a data usage plan including themobile computing device 100 and one or more other computing devices 102.For example, computing device 100 and computing device(s) 102 may eachbe associated with a user who are all members of the same family orother type of group. The family or group may share a data usage planadministered by a service provider 104. The computing device 100 andcomputing device(s) 102 may communicate data among one another and othercomputing types via one or more networks 106 as administered by theservice provider 104. Example data can include, but is not limited to,phone data, email, text messages, video, image files, and the like.

Computing devices(s) 102 may include components and functionalitysimilar to computing device 100. The computing device 100 may include acommunications module 108 configured to communicate data to othercomputing devices via the network(s) 106, and to receive data from othercomputing devices via the network(s) 106. The computing device 100 mayalso include a user interface 110 including components such as atouchscreen display, one or more speakers, buttons, and the like.Further, the computing device 100 may include hardware, software,firmware, and combinations thereof for implementing functionalitydescribed herein. For example, the computing device 100 may include amemory 112 and one or more processors 114 configured to implement thefunctionality of the computing device 100 described herein.

In accordance with embodiments, the computing device 100 is configuredto set data usage levels among computing devices based on predicted datausage. It is noted that in this example this functionality is describedas being implemented by the computing device 100; however, it should beunderstood that the functionality may be distributed among two or moreof the computing devices shown in FIG. 1, another computing device(e.g., a server), or any suitable type or number of computing devices.In this example, the computing device 100 includes a data usage manager116 residing in memory 112. The data usage manager 116 can be a set ofinstructions for execution by the processor(s) 114 for implementingfunctions for setting data usage levels for the computing device 100 andthe other computing device(s) 102 with which the computing device 100share a data usage plan. The data usage plan is administered by serviceprovider 104, which may operate one or more servers and/or otherequipment operably connected to the network(s) 106 for providing datacommunication services. The data usage manager 116 may be configured topredict data usage by the computing device 100. Further, the data usagemanager 116 may be configured to set a data usage level of the computingdevice(s) 102 based on the predicted data usage of the computing device100. Computing device(s) 102 may also include a data usage manager withthe same functionality and functionality for receiving and implementinginstructions from the computing device 102 as described in furtherdetail herein.

The data usage manager 116 may maintain and administer plan information118 residing within memory 112. The plan information 118 may indicateusers associated with the data usage plan, information for communicatingwith computing devices associated with the plan, and an amount of dataallocated to each computing device or user in the plan. Table 1 belowprovides example plan information.

TABLE 1 Example Plan Information User Data Allocation (MB) John 1000Nancy 1000 Zack 500 Jill 500

Referring to Table 1, in this example the users John and Nancy areparents to children Zack and Jill. John and Nancy are each allocated useof 1000 megabytes (MB) of data in the plan. Zack and Jill are eachallocated use of 500 MB of data in the plan. Thus, these users aresharing a total of 3000 MB with a time period of one month. Also, thismay be the data amounts normally allocated for use by each user duringthe month time period. The respective computing devices of each user mayinform the user of the total amounts available each month and indicatethe amount of allocated data consumed by the user during the month. Theuser may use this information to plan data usage through the month sothat the user can avoid going over an allocated amount of data. The datausage manager 116 may present such information to the user via the userinterface 110.

In accordance with embodiments, the data usage manager 116 may adjust orotherwise set data usage among users in a data usage plan based onpredicted data usage of one or more computing devices associated withthe plan. In the example of Table 1, the data usage manager 116 mayadjust the normal allocation of data shown in the table based onpredicted data usage during the month time period. For example, the datausage manager 116 may access calendar information within memory 112 thatindicates a schedule for John. John's schedule may indicate an upcomingtravel event during a particular month. Similar past travel events forJohn have been associated with an increase in his data usage by about500 MB. The data usage manager 116 may also check schedules for theother users and determines no deviations from normal. As a result ofdetermining a need for increased data usage by John and no deviationsfrom the others normal usage, the data usage manager 116 may decreasethe allocation to each of the other users by the increased amount forJohn. In this example, the increase of 500 MB by John would be equallyor otherwise distributed among the other users. For example, in themonth, Nancy's usage may be decreased by 200 MB, and Zack's and Jill'smay each be decreased by 100 MB. This way, the data usage manager 116may assist the users in adjusting their usage based on the predictedchange in John's data usage.

As an example, FIG. 2 illustrates a flowchart of a method for settingdata usage levels among computing devices based on predicted data usage.In this example, the method is described as being implemented by thecomputing device 100 shown in FIG. 1, although it should be understoodthat the method may be implemented by any suitable computing device thatis part of a data usage plan.

Now referring to FIG. 2, the method includes predicting 200 data usageby a computing device. The computing device may be associated with adata usage plan including the computing device and one or more othercomputing devices. For example in FIG. 1, the data usage manager 116 ofthe computing device 100 may predict data usage by the computing device100. The data usage manager 116 may, for example, predict an amount oftime of data communication by the computing device 100 in associationwith the data usage plan. The data usage manager 116 may predict thetime amount based on the user's calendar, various measureable factors,and the like.

As stated, the data usage manager 116 may predict data usage based on auser's calendar. For example, the calendar may reside in memory 112 orbe available from another source, such as a remote server. The calendarmay indicate events that the user may attend, travel periods, vacations,phone calls, school events, meeting information, and the like. The datausage manager 116 may analyze this calendar information to predict datausage. The prediction may be based on historical data usage when similaror the same calendar events were scheduled. Thus, it can be expectedthat data usage will be the same during like future time periods.Particularly in implementation, the data usage manager 116 can analyzethe calendar to predict a likelihood of data usage by the user using thecomputing device during a predetermined time period in the future.

In an example, data usage may be predicted based on a meeting indicatedin the user's calendar. The meeting may be known to have a high or lowdensity of people. Data usage may be expected to be low at such ameeting when the density is high, because it can be expected that theuser will be engaged in conversing with others during the time period.However, if the density is low, it can be expected that data usage maybe higher because there are fewer people.

As stated, the data usage manager 116 may predict data usage based onvarious measureable factors. For example, the memory 112 may store datathat indicates health information about the user, messaging content ofthe user, social media content, news content, media content information,updates scheduled for the computing device, and the like. Such data maybe used by the data usage manager 116 for predicting future data usageby the computing device 100. The data usage manager 116 may analyze thedata and/or communications by the computing device 100 to predict datausage.

As an example of using the data for predicting data usage, illness orother health information by a user may imply a scenario in which datausage will be higher. For example, an indicator of an illness may implya work-from-home scenario in which the use of the computing device 100can be expected to be higher than normal.

In another example of using the data for predicting data usage,messaging content may indicate increased or decreased future data usage.For example, a text message or email received by the user may inform theuser of a new television series, game, or movie to enjoy. In thisexample, such information may increase the likelihood that the user willuse the computing device 100 to watch the new television series ormovie, or play the game. In that case, the data usage manager 116 canpredict increased data usage.

In another example of using the data for predicting data usage, socialmedia or other new events may be used to predict data usage. Forexample, a user may post on social media frequently. Based on thishistory, the data usage manager 116 can predict that the user will poston his or her social media account following an important news event ona website.

In another example of using the data for predicting data usage, plannedupdates for the computing device or the release of new content (e.g., amovie, game, or the like) related to the user's profile can be used topredict data usage. For example, the data usage manager 116 maydetermine that a new movie is being download, or a software patch orupdate is being released. In these instances, the data usage manager 116may predict an increase in data usage, because the computing device 100can be expected to download such content, thereby increasing data usagefrom normal.

Returning to FIG. 2, the method includes setting 202 a data usage levelof one or more other computing devices based on the predicted datausage. Continuing the aforementioned example, the data usage manager 116shown in FIG. 1 can set data usage levels of the computing device(s) 102based on the predicted data usage of computing device 100 during aparticular time period. For example, the data usage manager 116 maydetermine that the use of data may increase by 250 MB during the monthof August. In response to this determination, the data usage manager 116may decrease the data usage allocated to the other computing device(s)102 by an amount totaling 250 MB. This amount may be distributed equallyor otherwise among the other computing devices.

In accordance with embodiments, the data usage manager 116 may determinea normal data usage by the computing device 100. For example, the datausage manager 116 may create and maintain a record of historical datausage of the computing device 100. The record may be stored in thememory 112. The record may indicate data usage each month or any othersuitable time period. An average or other suitable measure of data usagemay be used for determining a normal data usage by the computing device100. Alternatively, the normal data usage may be entered by a user orotherwise entered into a record in memory 112. Normal data usage may bedetermined for each user in a data plan. The data usage manager 116 mayadjust data usage levels of other computing device(s) 102 based apredicted deviation from the normal data usage by the computing device100. In response to determining whether that the predicated data usageis greater than the normal data usage, the data usage level of the othercomputing device(s) 102 may be increased. In response to determiningwhether that the predicated data usage is less than the normal datausage, the data usage level of the other computing device(s) 102 may bereduced.

In accordance with embodiments, the data usage manager 116 may controlthe communication module 108 to suitable notify one or more othercomputing devices 102 of a set data usage level. For example, when thedata usage level for another computing device 102 is changed, thecomputing device 102 may receive a notification about the change so thatthe user of the computing device 102 may control his or her data usagehabits to remain within the set data usage level. The notification maybe presented to the user via a user interface, such as a display.

In accordance with embodiments, a user may override a set data usagelevel by the data usage manager 116. For example, the data usage manager116 may indicate a planned change by the user interface 110. The usermay review the planned change, and determine to either permit thechange, decline the change, or manually change the usage for the otherdevices.

It is noted that the computing device implemented the functionalitydescribed herein may be communicating with any suitable computing devicesuch as, but not limited to, a smartphone, router, laptop computer,desktop computer, or the like.

The present disclosure may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent disclosure.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present disclosure may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Java, Smalltalk, C++ or the like,and conventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present disclosure.

Aspects of the present disclosure are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of thepresent disclosure. It will be understood that each block of theflowchart illustrations and/or block diagrams, and combinations ofblocks in the flowchart illustrations and/or block diagrams, can beimplemented by computer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present disclosure. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present disclosurehave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

What is claimed is:
 1. A method comprising: predicting data usage by acomputing device, wherein the computing device is associated with a datausage plan including the computing device and at least one othercomputing device; and setting a data usage level of the at least oneother computing device based on the predicted data usage.
 2. The methodof claim 1, wherein predicting data usage comprises predicting an amountof time of data communication by the computing device in associationwith the data usage plan.
 3. The method of claim 1, wherein predictingdata usage comprises predicting an amount of data communicated by thecomputing device in association with the data usage plan.
 4. The methodof claim 1, wherein predicting data usage comprises analyzing a calendarof a user of the computing device to predict a likelihood of data usageby the user using the computing device during a predetermined timeperiod, and wherein setting the data usage level comprises setting thedata usage level during the predetermined time period.
 5. The method ofclaim 4, wherein predicting data usage comprises analyzing one ofevents, travel periods, vacations, phone calls, school events, andmeeting information indicated on the calendar.
 6. The method of claim 1,further comprising analyzing one of data stored on the computing deviceand communications associated with the computing device, and whereinpredicting data usage comprises predicting data usage based on the oneof data stored on the computing device and communications associatedwith the computing device.
 7. The method of claim 6, wherein the datastored on the computing device includes one of health information aboutthe user, messaging content of the user, social media content, newscontent, media content information, and updates scheduled for thecomputing device.
 8. The method of claim 1, further comprising:determining a normal data usage by the computing device; and comparingthe predicted data usage with the normal data usage, and wherein settinga data usage level comprises setting the data usage level based on thecomparison.
 9. The method of claim 1, further comprising: determining anormal data usage by the computing device; determining whether thepredicted data usage is greater than the normal data usage; and inresponse to determining that the predicted data usage is greater thanthe normal data usage, reducing a data usage level of the at least oneother computing device.
 10. The method of claim 1, further comprising:determining a normal data usage by the computing device; determiningwhether the predicted data usage is less than the normal data usage; andin response to determining that the predicted data usage is greater thanthe normal data usage, increasing a data usage level of the at least oneother computing device.
 11. The method of claim 1, further comprisingcommunicating, to the at least one other computing device, anotification about the set data usage level.
 12. A computing devicecomprising: a data usage manager comprising at least one processor andmemory configured to: predict data usage by a computing device, whereinthe computing device is associated with a data usage plan including thecomputing device and at least one other computing device; and set a datausage level of the at least one other computing device based on thepredicted data usage.
 13. The computing device of claim 12, wherein thedata usage manager is configured to predict an amount of time of datacommunication by the computing device in association with the data usageplan.
 14. The computing device of claim 12, wherein the data usagemanager is configured to predict an amount of data communicated by thecomputing device in association with the data usage plan.
 15. Thecomputing device of claim 12, wherein the data usage manager isconfigured to: analyze a calendar of a user of the computing device topredict a likelihood of data usage by the user using the computingdevice during a predetermined time period, and set the data usage levelduring the predetermined time period.
 16. The computing device of claim12, wherein the data usage manager is configured to: analyze one of datastored on the computing device and communications associated with thecomputing device; and predict data usage based on the one of data storedon the computing device and communications associated with the computingdevice.
 17. The computing device of claim 12, wherein the data usagemanager is configured to: determine a normal data usage by the computingdevice; compare the predicted data usage with the normal data usage; andset the data usage level based on the comparison.
 18. The computingdevice of claim 12, further comprising: determining a normal data usageby the computing device; determining whether the predicted data usage isgreater than the normal data usage; and in response to determining thatthe predicted data usage is greater than the normal data usage, reducinga data usage level of the at least one other computing device.
 19. Thecomputing device of claim 12, further comprising: determining a normaldata usage by the computing device; determining whether the predicteddata usage is less than the normal data usage; and in response todetermining that the predicted data usage is greater than the normaldata usage, increasing a data usage level of the at least one othercomputing device.
 20. The computing device of claim 12, wherein the datausage manager is configured to communicate, to the at least one othercomputing device, a notification about the set data usage level.